[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
WARNING: This document is subject to change at any time. Any changes made
will be indicated by a vertical bar (|) in column 1 of the file.
|Last update: 03/24/93
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The later versions of PCBoard must accomodate a much larger number of nodes
which precludes the ability to load the entire USERNET.XXX file into memory
for processing. For that reason the file format has been changed to allow
picking up of status changes without having to scan the entire file. In
addition, new capabilities have been added.
The following constitutes the file format and file handling for usernet.xxx
in the PCBoard v15.0 version.
USERNET.XXX header
==================
typedef struct {
| unsigned Version; PCBoard Version Number (150)
unsigned NumOfNodes; The number of nodes supported in the file
unsigned SizeOfRec; The record size for each node
} usernethdrtype;
typedef struct {
char Status; Node status
bool MailWaiting; Flag to show mail posted while caller is online
unsigned Pager; Node number of pager (if node has been paged)
char Name[26]; Caller's Name (if a caller is online)
char City[25]; Caller's City (if a caller is online)
char Operation[49]; Current operation (door name, etc)
| char Message[80]; For broadcast messages
| char Channel; Channel number of pager (if node has been paged)
| long LastUpdate; hour:min:sec of last update on this record
} noderectype;
NOTE: Prior to v15.0 the Message, Channel and LastUpdate fields did not
exist. However, the function of the Message field was performed thru the
Operation field.
The actual layout of the file is the following:
1) header information
2) attention bit flags
3) up status bit flags
4) node records (1 record for each node)
The bit flags are set up such that one byte holds 8 flags, i.e. nodes 1-8
fit in the first byte, nodes 9-16 fit in the second byte and so on. The
number of bytes used for the bit flags is equal to the number of nodes
indicated in the header divided by 8 and rounded up to a full byte.
The "attention bit flags" are used to get another node's attention. For
instance, if one node wants to chat with another it sets the attention bit
flag for the target node ON. The same is used for dropping an alternate
node to DOS or forcing it to logoff.
The "up status bit flags" are used to indicate if a node is up or not. This
is used so that a complete scan of the usernet.dat file is never needed in
order to find out which nodes are up. (if a 1000-node version were in use
this means scanning only 125 bytes instead of the 100K or so that would be
the complete size of the usernet.xxx file)
Status Letters
--------------
0 = Ascii 0 is used to signify that a node is not up
' ' = Space denotes that the node is up but no caller is online
'A' = Available for Chat
| 'B' = Remote Drop to DOS
'C' = Chatting with sysop
| 'D' = Out to DOS - in a door
'E' = Entering a Message
| 'F' = Viewing a File (PCB15 shows transfer, Moni shows File View)
'G' = Group Chat
'L' = Logoff Pending
'M' = Received broadcast message
| 'N' = Running Event
'O' = Logging Into System
'P' = Paging the Sysop
| 'R' = Recycle BBS
'S' = Answering a script questionnaire
'T' = Transfering a File
'U' = Unavailable for Chat
| 'W' = Drop to DOS (wait for caller to logoff)
| 'X' = Drop to DOS (now)
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson